headless
전체 블로그

// 업무 자동화

이커머스 PG 정산 ↔ 은행 입금 대사 자동화

PG 정산서와 은행 실입금이 매주 안 맞아 반나절씩 맞추던 일을 0분으로. 일자별 자동 대사 후 차이 난 줄만 봅니다.

·headless

PG 정산서에 적힌 금액과 은행 통장에 실제로 들어온 금액은 매번 조금씩 다릅니다. 수수료, 부분 취소, 다음 영업일 이월이 섞이기 때문입니다. 매주 그 둘을 엑셀에 펴 놓고 일자별로 맞추던 반나절이 0분으로 줄어듭니다. 대사는 자동으로 끝나고, 사람이 볼 건 차이 난 몇 줄뿐입니다.

이커머스 운영·정산 담당을 위한 글입니다. 코드는 거의 없습니다.

누가, 언제 겪는 일인가

여러 PG로 결제를 받는 온라인 판매자가 매주, 매월 겪습니다.

  • 빈도: 보통 주 1회(지난주 정산이 다 들어온 월요일). 월정산도 같은 구조입니다.
  • 현재 방식: PG사(네이버페이·카카오페이·토스 등) 관리자에서 정산서를 내려받고, 은행 입금 내역을 따로 받아 일자·금액을 눈으로 맞춥니다.
  • 방치 비용: 미정산·이체 누락을 늦게 발견하면 한 주가 지나 추적이 어려워집니다. 정산서 표기(네이버파이낸셜·(주)네이버파이낸셜·NAVER)가 은행 적요와 달라 매칭이 깨지면 그만큼 야근입니다.

어디까지 자동화되나

은행 입금 수집과 일자별 매칭은 자동, 차이의 원인 판단만 사람이 합니다.

단계지금 (수기)headless 도입 후
은행 입금 수집은행 로그인·다운로드자동
PG 정산서 정규화PG마다 다른 양식 수기 정리자동 (PG별 파서로 표준화)
일자별 매칭엑셀 VLOOKUP·정렬자동 (PG·금액·일자 3키)
차이 추리기전부 사람자동 (차이 난 줄만 CSV)
차이 원인 판단사람사람 (남는 일)

매칭은 세 상태로 나옵니다. 금액·일자가 맞으면 OK입니다. ±2 영업일 안에서 1원이라도 어긋나면 GAP(수수료·부분취소 가능성)입니다. 3 영업일 안에 대응 입금이 없으면 MISSING(다음 영업일 이월 가능성)입니다. OK는 조용히 넘어가고, GAP·MISSING만 담당자 앞에 쌓입니다.

한 주가 대사되는 과정

지난주 정산을 예로 듭니다. 결과 CSV는 차이 난 줄만 남습니다.

입금일,PG,PG정산액,은행실입금,차이,상태,비고
2026-04-29,A페이,1840200,1839200,-1000,GAP,수수료·부분취소 가능성
2026-04-30,A페이,920000,0,-920000,MISSING,다음 영업일(5/2) 확인

차이가 없으면 헤더만 있는 빈 CSV가 나옵니다. "이번 주 차이 없음"을 1초에 확인합니다. 숫자는 예시입니다.

까다로운 건 PG 표기 변형입니다. 같은 PG가 은행 적요에 매주 다르게 찍혀도, 한 번 확정한 변형이 규칙에 쌓여 다음 주부터 자동으로 잡힙니다. 첫 2주는 사람이 PG 관리자와 은행 명세를 한 번씩 대조해 자동 결과와 차이가 0인지 확인하고, 그 뒤 정기 일정으로 넘깁니다.

비용과 ROI

추정이라 자기 거래량으로 바꿔 보면 됩니다.

  • 시간: PG 3곳·주 1회 기준, 수집·대사가 주 2~4시간. 자동화 후 차이 줄만 보는 데 주 10~20분입니다.
  • 금액: 미정산을 한 주 늦게 잡으면 추적 비용이 커집니다. 조기 발견으로 줄어드는 손실이 요금을 넘는 경우가 많습니다.
  • 요금: headless는 데이터 수집 요청 단위 과금입니다. 주 1회 은행 수집이면 슬롯이 작습니다. 현재 가격은 요금 페이지에서 확인합니다.

도입하는 법

경로 1 — 개발자에게 요청. 아래를 그대로 전달합니다.

매주 월요일 지난주(월~일) 은행 입금 bank.transactions.cb.v1 을 받아서, 우리가 받아 둔 PG 정산서 폴더와 PG·금액·일자로 매칭하고, 차이 난 줄만 CSV와 슬랙으로 보내줘. 은행 자격증명 1개 콘솔에 등록할게.

경로 2 — 낮은코드. 은행 수집 한 줄은 이 정도입니다.

bash
# 지난주 은행 입금 받기 (CLI 예시)
h6s fetch bank.transactions.cb.v1 --from "$LAST_MON" --to "$LAST_SUN" --save bank.jsonl

PG 정산서는 PG 관리자에서 받아 지정 폴더에 두면, 매칭 규칙(±2 영업일·1원 허용오차)을 한 번 합의해 고정합니다. 자연어 에이전트로 같은 흐름을 부르는 방법은 Slack에서 자연어로 어제 매출 묻기와 결이 같습니다.

안전한가

은행 자격증명은 봉투 암호화로 저장하고 수집 시점에만 메모리에서 복호화합니다. 등록 후 평문은 남지 않습니다. 자격증명은 워크스페이스 안에만 있어 밖에서 보이지 않습니다. PG 정산서는 운영자가 받아 두는 파일이라 자격증명과 분리됩니다. 키 관리 모델은 보안 페이지에 있습니다.

도입 체크리스트

  • 대사할 PG 목록·은행 1줄로 정리
  • 매칭 규칙 합의 — 일자 폭(±2 영업일)·금액 허용오차
  • PG 정산서를 어디에 둘지 폴더 약속
  • 첫 2주 수기 대조로 자동 결과 검증
  • 매주 월요일로 일정 고정

자주 막히는 곳

증상원인대응
GAP가 늘 −수수료만큼정산서가 수수료 차감 전 금액정상입니다. 수수료 룰을 매칭에 한 번 반영하면 OK로 정리됩니다
MISSING이 다음 주 OK로 바뀜주말·휴일 이월 입금정상입니다. ±영업일 창 안이면 자동 매칭됩니다
적요 매칭 실패율 30%↑PG 표기 변형 미등록사람이 확정한 변형이 규칙에 쌓여 다음 주 줄어듭니다
같은 PG·일자 후보 2건부분 정산 분할 입금큰 금액 우선 매칭, 작은 차이는 "검토" 표시됩니다
은행 0건휴일이면 정상영업일인데 0건이면 자격증명·계좌를 확인합니다

더 읽기